Currently, dialog systems are widely used in the information technology industry, especially in the form of mobile applications for cell phones and tablet computers. A dialog system can include a computer-based agent having a human-centric interface for accessing, processing, managing, and delivering information. Dialog systems are also known as chat information systems, spoken dialog systems, conversational agents, chatter robots, chatterbots, chatbots, chat agents, digital personal assistants, automated online assistants, and so forth. All these terms are within the scope of the present disclosure and referred to as a “Dialog System” for simplicity.
Traditionally, a dialog system interacts with its users in natural language to simulate an intelligent conversation and provide personalized assistance to the users. For example, a user may generate requests to the dialog system in the form of conversational questions, such as “What is the weather like in Palo Alto?” and receive corresponding answers from the dialog system in the form of audio and/or displayable messages. The users may also provide voice commands to the dialog system requesting the performance of certain functions including, for example, generating e-mails, making phone calls, searching particular information, acquiring data, navigating, requesting notifications or reminders, and so forth. These and other functionalities make dialog systems very popular as they are of great help, especially for holders of portable electronic devices such as smart phones, cellular phones, tablet computers, gaming consoles, and the like.
Although the demand for dialog systems for third party mobile applications and web services is constantly growing, it is not an easy task to create a well-operating dialog system. Each dialog system has a dialog system interface and dialog system engine. Dialog system interface is responsible for receiving user inputs and delivering dialog system responses to the user. A dialog system engine is responsible for transforming voice user inputs into text inputs, interpreting text inputs, and generating corresponding responses to text inputs. The process running on the dialog system engine is also known as “natural language processing” or NLP. Development of NLP models is not only very time consuming, but is also a highly technical task. Accordingly, most application developers may struggle to develop a Dialog System for integration with a particular mobile application or web service. Accordingly, there is a need in the art to simplify the process of creating, developing and maintaining dialog systems.